29|代码的可测试性

什么是代码的可测试性

代码的可测试性就是根据代码编写单元测试的容易程度。对测试性差的代码往往难以编写单元测试,因为他们没有遵循设计原则与思想,比如基于接口而非实现编程,依赖反转等。

如何编写可测试性的代码

  1. 依赖注入

通过依赖注入的形式引入其他类、方法,可以便于外部服务的Mock.

  1. Mock

对于外界服务,我们不关系外部系统服务的正确性,所以我们对外部服务进行Mock,然后采用依赖注入的形式

  1. 抽象封装
    比如代码中有一段是关于日期过期的判断,这种情况可以将这块代码封装起来。
1
Transction transaction = new Transaction(null, buyerId, sellerId, productId, orderId) { protected boolean isExpired() { return true; } };

测试性差的代码

  1. 代码中包含未决行为逻辑
  2. 滥用可变全局变量
  3. 滥用静态方法
  4. 使用复杂的继承关系
  5. 高度耦合的代码